home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 6 / QRZ Ham Radio Callsign Database - Volume 6.iso / mac / files / amiga / csrc720j.lzh / mb.h < prev    next >
C/C++ Source or Header  |  1993-01-26  |  6KB  |  281 lines

  1. /*
  2.  *  MB.H - 9/20/92 - Definitions for MailBox.
  3.  */
  4.  
  5. /*
  6.  *  System specific includes.
  7.  *  IBM PC, Microsoft C Compiler Version 5.00
  8.  */
  9.  
  10. /*
  11.  *  Includes from the C Library.
  12.  */
  13.  
  14. #include <stdio.h>
  15. #include <fcntl.h>
  16. #include <ctype.h>
  17. #ifdef MCH_AMIGA
  18. /* the cbbs use of log() conflicts with the definition of the mathematical
  19.    function in <functions.h> so rename it
  20. */
  21. #define log mblog
  22. #include <exec/types.h>
  23. #include <stat.h>
  24. #include "amiga.h"
  25. #else
  26. #include <string.h>
  27. #include <malloc.h>
  28. #include <sys\types.h>
  29. #include <sys\stat.h>
  30. #endif
  31.  
  32. #ifndef O_BINARY
  33. #define O_BINARY 0
  34. #endif
  35.  
  36. typedef unsigned char  byte;
  37. typedef unsigned short word;
  38.  
  39. /*
  40.  *  Sizes of things.
  41.  */
  42.  
  43. #define ln_handle 12  /* # chars in users name         */
  44. #define ln_call    6  /* # chars in a callsign         */
  45. #define ln_callp   9  /* # chars in callsign+ssid      */
  46. #define ln_date    6  /* # chars in date               */
  47. #define ln_time    4  /* # chars in time               */
  48. #define ln_zip     6  /* # chars in zip or postal code */
  49. #define ln_bid    12  /* # chars in bulletin ID        */
  50. #define ln_qth    20  /* # chars in qth                */
  51.  
  52. #define maxflds  16
  53.  
  54. /*
  55.  *  MailBox includes.
  56.  */
  57.  
  58. #include "mbmail.h"
  59. #include "mbuser.h"
  60. #include "mbport.h"
  61.  
  62. /*
  63.  *  Cosmetics.
  64.  */
  65.  
  66. #define is   ==
  67. #define isnt !=
  68. #define and  &&
  69. #define or   ||
  70. #define not   !
  71.  
  72. #define setbit  |=
  73. #define clrbit  &= ~
  74. #define flipbit ^=
  75.  
  76. #define true   1
  77. #define false  0
  78. #define match  !strcmp
  79. #define matchn !strncmp
  80.  
  81. #define nncmd false /* If true, enable the "NN" command    */
  82.  
  83. #define RECSIZE 256
  84.  
  85. #ifndef MCH_AMIGA
  86. #define pmode S_IREAD | S_IWRITE  /* Permissions for creat() */
  87. #else
  88. #define pmode 0
  89. #endif
  90.  
  91. /*
  92.  *  Some character values.
  93.  */
  94.  
  95. #define ctl_c  '\03'
  96. #define ctl_g  '\07'
  97. #define ctl_v  '\026'
  98. #define ctl_w  '\027'
  99. #define cpmeof '\032'
  100. #define del     0x7f
  101.  
  102. /*
  103.  *  Index values for standard TNC commands.
  104.  */
  105.  
  106. #define t_con  0  /* Connect on */
  107. #define t_coff 1  /* Connect off */
  108. #define t_mon  2  /* Monitor on */
  109. #define t_moff 3  /* Monitor off */
  110.  
  111. #define cmdlen   80
  112. #define linelen 256
  113.  
  114. extern char scmd[24];
  115. extern char pt_flag;
  116. extern word filesize;
  117.  
  118. /*
  119.  *  Multi-line messages (message of the day, mostly).
  120.  */
  121.  
  122. typedef struct MLM_S
  123. {
  124.   char *text;
  125.   struct MLM_S *next;
  126. } MLM;
  127.  
  128. /*
  129.  *  Directory path stuff.
  130.  */
  131.  
  132. #define dp_dnload 1  /* Ok to download */
  133. #define dp_upload 2  /* Ok to upload   */
  134.  
  135. typedef struct DIRPATH_S
  136. {
  137.   char *name;              /* Name of this directory path */
  138.   char *path;              /* The path or device spec */
  139.   struct DIRPATH_S *next;  /* Pointer to next path */
  140.   byte flags;              /* Flag bits */
  141.   char id;                 /* Path identifier */
  142. } DIRPATH;
  143.  
  144. extern DIRPATH *dphd, *getdir();
  145.  
  146. /*
  147.  *  Directory entry stuff.
  148.  */
  149.  
  150. typedef struct
  151. {
  152. #ifndef MCH_AMIGA
  153.   word size;    /* Device size, in k */
  154.   word block;   /* Device block size */
  155.   word free;    /* Device free space, in k */
  156. #else
  157.   long size;    /* Device size, in k */
  158.   long block;   /* Device block size */
  159.   long free;    /* Device free space, in k */
  160.   long lock;    /* Lock on the file or directory */
  161. #endif
  162. } DIRDEF;
  163.  
  164. typedef struct
  165. {
  166.   char name[14];  /* File name */
  167.   short size;     /* File size, in k */
  168. } DIRENT;
  169.  
  170. /*
  171.  *  Scratch area. Used by directory listing commands,
  172.  *  and by user file and message file backup.
  173.  *  Also used hither, and yon.
  174.  */
  175.  
  176. typedef union
  177. {
  178.   char scr[1];
  179.   DIRENT dirent[1];
  180. } TMP;
  181.  
  182. extern int scrmax, dirmax;
  183. extern TMP *tmp;
  184.  
  185. /*
  186.  *  Date and time stuff.
  187.  */
  188.  
  189. extern char l_date[ln_date + 1];
  190. extern char l_time[ln_time + 1];
  191. #ifdef MCH_AMIGA
  192. extern char z_date[ln_date + 1];
  193. extern char z_time[ln_time + 1];
  194. #endif
  195. extern int log_mon;
  196. extern byte unt_hr;
  197.  
  198. /*
  199.  *  File names.
  200.  */
  201.  
  202. extern char *helpfile, *infofile, *fwdfile, *lgfile, *monfile;
  203.  
  204. extern char *hrdfile, *bidfile, *stfile;
  205. extern int  hrdmax;
  206.  
  207. #define bidok   0x01  /* Smart bbs - BID exchange            */
  208. #define hidok   0x02  /* Smart bbs - Hierarchical address    */
  209. #ifdef MCH_AMIGA
  210. /* Not necessarily implemented yet */
  211. #define fbbok   0x04  /* Smart BBS - FBB batch forwarding    */
  212. #define cmpok   0x08  /* Smart BBS - FBB file compression    */
  213. #define midok   0x10  /* Smart bbs - MID exchanged           */
  214. #define zoook   0x20  /* Smart BBS - ZOO compression         */
  215. #endif
  216.  
  217. extern byte s_mart;
  218.  
  219. /*
  220.  *  Error / status messages.
  221.  */
  222.  
  223. extern char *mcant, *mfind,  *mprot, *mexst,  *mtime, *mwhat;
  224. extern char *mdone, *mnport, *mndir, *mnfile, *mnmsg, *minuse;
  225.  
  226. /*
  227.  *  Misc text.
  228.  */
  229.  
  230. extern MLM *motd;
  231.  
  232. extern char *nullstr;
  233. extern char *ver;
  234. extern char *vers;
  235.  
  236. extern char *talkm1, *talkm2, *talkm3, *talkm4;
  237. extern char *bbmenu, *symenu, *rmenus, *mumsg;
  238. extern char *pausemsg, *fm, *reqmsg;
  239. extern char *qth, *keylst;
  240.  
  241. extern char achar, rchar, tchar, wchar;
  242.  
  243. /*
  244.  *  System parameters.
  245.  */
  246.  
  247. #define s_page     0x0001   /* Page sysop enabled ?            */
  248. #define s_cmd      0x0002   /* Delayed remote sysop cmd to do  */
  249. #define s_unt      0x0004   /* Do an automatic untangle        */
  250. #define s_mchange  0x0008   /* Mail file changed?              */
  251. #define s_kill     0x0010   /* Kill all msgs after forward     */
  252. #define s_fkill    0x0020   /* Kill F msgs after forward       */
  253. #define s_svc      0x0040   /* Generate service message on KT  */
  254. #define s_edtfc    0x0080   /* Edit traffic command enabled?   */
  255.  
  256. #define s_log_on   0x0100   /* Logging enabled                 */
  257. #define s_log_gate 0x0200   /* Log gateway events              */
  258. #define s_log_file 0x0400   /* Log file events                 */
  259. #define s_log_msg  0x0800   /* Log message events              */
  260. #define s_log_loc  0x1000   /* Log stuff happens local console */
  261. #define s_ping     0x2000   /* Stop ping-pong messages         */
  262. #define s_uhold    0x4000   /* Hold user bulletins             */
  263.  
  264. extern word s_param;
  265.  
  266. #define s_p_name   0x01     /* Prompt user to enter name       */
  267. #define s_p_home   0x02     /* Prompt user to enter bbs        */
  268. #define s_p_zip    0x04     /* Prompt user to enter zip        */
  269. #define s_p_qth    0x08     /* Prompt user to enter qth        */
  270.  
  271. extern byte s_prompt;
  272.  
  273. #define s_update   0x01     /* List update flag                */
  274. #define s_dv       0x02     /* Desqview active, give slice     */
  275. #define s_bkill    0x04     /* Auto kill stale bulletins       */
  276. #define s_nkill    0x08     /* Auto kill stale traffic         */
  277. #define s_ukill    0x10     /* Auto kill stale user messages   */
  278.  
  279. extern byte s_flag;
  280.  
  281.